﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace RPGXEngine
{
    public interface IVariableType
    {
        #region Properties

        DataType Type { get; }
        string Name { get; }
        int SizeInBytes { get; }

        Dictionary<string, IVariableType> MetaData { get; }

        object Value { get; }

        #endregion

        #region Public Methods

        void SetValue(object value);
        void SetValue(IVariableType vt);

        void AddValue(object value);
        void AddValue(IVariableType vt);

        void MinusValue(object value);
        void MinusValue(IVariableType vt);

        void MultiplyValue(object value);
        void MultiplyValue(IVariableType vt);

        void DivideValue(object value);
        void DivideValue(IVariableType vt);

        #endregion
    }
}
